home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 201-225 / disk_222 / plplot / src / source.zoo / plsvpa.c < prev    next >
C/C++ Source or Header  |  1989-05-15  |  1KB  |  42 lines

  1. /* Sets the edges of the viewport to the specified absolute          */
  2. /* coordinates (mm), measured with respect to the current subpage    */
  3. /* boundaries                                                        */
  4.  
  5. #include "plplot.h"
  6.  
  7. void plsvpa(xmin,xmax,ymin,ymax)
  8. float xmin, xmax, ymin, ymax;
  9. {
  10.  
  11.     int nx, ny, cs;
  12.     float sxmin, symin;
  13.     float spdxmi, spdxma, spdymi, spdyma;
  14.     float vpdxmi, vpdxma, vpdymi, vpdyma;
  15.  
  16.     int level;
  17.  
  18.     glev(&level);
  19.     if (level<1) fatal("Please call PLSTAR before calling PLSVPA.");
  20.     if((xmin>=xmax)||(ymin>=ymax)||(xmin<0.)||(ymin<0.))
  21.         fatal("Invalid limits in PLSVPA.");
  22.  
  23.     gsub(&nx,&ny,&cs);
  24.     if ((cs<=0) || (cs>(nx*ny)))
  25.         fatal("Please call PLADV or PLENV to go to a subpage.");
  26.  
  27.     gspd(&spdxmi,&spdxma,&spdymi,&spdyma);
  28.     sxmin = dcmmx(spdxmi);
  29.     symin = dcmmy(spdymi);
  30.  
  31.     vpdxmi = mmdcx(sxmin+xmin);
  32.     vpdxma = mmdcx(sxmin+xmax);
  33.     vpdymi = mmdcy(symin+ymin);
  34.     vpdyma = mmdcy(symin+ymax);
  35.     
  36.     svpd(vpdxmi,vpdxma,vpdymi,vpdyma);
  37.     svpp(dcpcx(vpdxmi),dcpcx(vpdxma),dcpcy(vpdymi),dcpcy(vpdyma));
  38.     sclp(dcpcx(vpdxmi),dcpcx(vpdxma),dcpcy(vpdymi),dcpcy(vpdyma));
  39.     slev(2);
  40. }
  41.  
  42.